1. Field of the Invention
The present invention relates to a technique for dealing with a connection failure between an information processing apparatus such as a personal computer or a business host computer and a peripheral apparatus. More specifically, the present invention relates to a technique for using a serial bus such as a universal serial bus (USB) for connection between the information processing apparatus and the peripheral apparatus.
2. Description of the Related Art
Conventionally, there is known a USB as one of serial bus standards for connection between an information processing apparatus and a peripheral apparatus. FIG. 8 is a block diagram that depicts ordinary configurations of an information processing apparatus and peripheral apparatuses connected to the information processing apparatus by the USB. A conventional information processing apparatus 701 includes a control unit 702 which includes fundamental constituent elements of the apparatus 701 such as a central processing unit (CPU), a main storage device, and an auxiliary storage device, a USB host controller 704 connected to the control unit 702 through a system bus 703, and a USB route hub 705 that connects the controller 704 to a plurality of USB ports 709 to 711.
The information processing apparatus 701 is connected to a plurality of peripheral apparatuses 709 to 711 through cables 712 to 714 attached to the respective USB ports 709 to 711. The USB route hub 705 includes switches 706 to 708 that switch on or off the supply of a power to the corresponding peripheral apparatuses 715 to 717, respectively. The switches 706 to 708, which are connected to the respective USB ports 709 to 711, operate under control of an operating system (OS) executed by the control unit 702 through the USB host controller 704.
FIG. 9 typically shows a correlation among software used for a control over the connection between the information processing apparatus 701 and the peripheral apparatuses 715 to 717. In FIG. 9, if the peripheral apparatus 715 is connected to the USP port 709 corresponding to a hardware (H/W) 806 shown therein, for example, a general purpose OS (not shown) of the information processing apparatus 701 detects a firmware (F/W) 807a of this peripheral apparatus 715. The general purpose OS loads a peripheral apparatus driver 802a corresponding to the used USB port 709, thereby making the peripheral apparatus 715 available by an application 801.
The application 801 accesses the H/W 806, that is, the USB port 809 via the peripheral apparatus driver 802a and a USB port hub driver 805 when data is input or output to or from the connected peripheral apparatus 715. It is noted that peripheral apparatus drivers 802a to 802c and the USB port hub driver 805 are well known to those skilled in the art as a general purpose OS driver stack.
Further, the information processing apparatus 701 exercises a power control over the peripheral apparatuses 715 to 717 by causing the driver stack to control the switches 706 to 708 of the USB route hub 705. At that time, the information processing apparatus 701 is always connected to the peripheral apparatuses 715 to 717. During that time, the switches 706 to 708 are controlled according to a full-ON state, a sleep state, a suspended state or the like and a loaded state of each driver, thereby reducing power consumption.
It is assumed herein that a failure occurs to the peripheral apparatus driver 802a corresponding to the peripheral apparatus 715 and that the information processing apparatus 701 cannot use the peripheral apparatus 715. If so, the application 801 notifies the information processing apparatus 701 of this failure. The application 801 stops inputting or outputting data to or from the peripheral apparatus F/W 807 and notifies an operator of this failure. The operator disconnects the cable 712 from the USB port 709 so as to restart the peripheral apparatus driver 802.
If the cable 712 is disconnected from the USB port 709, then the general purpose OS detects absence of the peripheral apparatus F/W 807a, unloads the peripheral apparatus driver 802a, and notifies the operator of the disconnection of the peripheral apparatus 715. Thereafter, when the operator reconnects the cable 712 to the USB port 709, the general purpose OS detects connection of the peripheral apparatus F/W 807a and loads the peripheral apparatus driver 802. It is thereby possible to make the peripheral apparatus 715 available again by the application 801.
If a failure occurs to the USB connection, the relevant cable 712 is disconnected and then connected as stated above. The peripheral apparatus driver 802a can be thereby restarted. However, to save operator's labor of disconnection and connection operations, a setting may be made such that the supply of the power to the peripheral apparatus 715 is stopped by allowing the application 801 to turn off the switch 706 under control of the general purpose OS.
Generally, however, a general purpose OS is designed not to cut off the supply of the power to a peripheral apparatus in use. Due to this, even if a failure occurs to the peripheral apparatus driver 802a, the general purpose OS is incapable of automatically turning off the switch 706 as long as this driver 802a is loaded.
As a technique for dealing with the failure of the USB connection, there is known one disclosed in, for example, Japanese Patent Application Laid-Open (JP-A) No. 2001-228944. According to the technique disclosed in JP-A 2001-228944, a USB apparatus connectable to a port of a host computer through a cable has a circuit configuration of resetting connection to the host computer without disconnecting the cable. According to this conventional technique, even if a failure occurs to the connection between the USB apparatus and the host computer, the connection therebetween can be reset without the need to disconnect the cable.
However, the technique disclosed in JP-A 2001-228944 has the following disadvantages. Since this technique is for causing the USB apparatus side to emulate resetting of the connection to the host computer, it is necessary to provide the circuit configuration disclosed in JP-A 2001-228944 for every USB apparatus to be connected to the host computer. It takes lots of cost if many USB apparatuses are connected to the host computer, for example, in a business system.
Furthermore, if means for resetting the USB connection without disconnecting the cable is to be provided in the host computer, it is conventionally necessary to modify the general purpose OS itself.